Tootsville::Infinity-Create-User-House

Function

Infinity-Create-User-House names a function, with lambda list (D USER RECIPIENT/S):

Either claim the user's house and lot, or add a room to their house.

Lisp CREATE-USER-HOUSE = JSON createUserHouse

Usage

{ lot: LOT-ID,
  house: HOUSE-ID }

{ index: ROOM-INDEX, connectTo: ROOM-INDEX, connectAt: CONNECTION-POINT-MONIKER }

{ query: "houses" }

Returns data describing the user's lot for the first two forms, or data describing houses and rooms available in the third form.

Examples

When the player has found an empty lot and wishes to claim it as their own, they choose a base house and send

 { lot: lot-ID, house: house-ID }

When the player has a house and wishes to add a room, they send

 { index: roomIndex,
   connectTo: roomIndex,
   connectAt: pointMoniker } 

Connection point monikers need to be obtained from the house design.

 { query: "houses" }

This queries the list of houses and rooms available. UNIMPLEMENTED. This command was added in Romance 2.0 so that the client need not be updated with all available houses and rooms.

200 OK --- Query Form

Returns an enumeration of houses and rooms available as follows:

{ houses: [ { name: "NAME",
              description: "DESCRIPTION",
              preview: "URL",
              moniker: "UUID",
              rooms: [ { id: "UUID",
                         connect: { "MONIKER": "UUID", ... },
                         preview: "URL" },
                       ... ] },
            ... ] }

Each house has a list of rooms. The first room in each house is the default, and is the room created when the lot is first claimed.

The houses themselves have visible names, descriptions, and preview URLs (also relative to the same base Buildings URL). The client should give the user the opportunity to select a house from this set by browsing their names, descriptions, and preview graphics.

Rooms have connection points with monikers. Each room has a preview URL which is an image file (e.g. a PNG) relative to the base URL https://jumbo.tootsville.org/Assets/Buildings/5/. The preview can be shown to the user when they are choosing to connect a new room. Rooms have no established names --- we want to allow the players full freedom to develop each room as they like.

WRITEME

201 Created --- Add house or add room

A house or room was created as demanded.

Returns a description of the house as follows:

WRITEME

409 Conflict

A house already exists on that lot, or, a room is already connected at the given connection point. The request cannot be completed because something already exists where the new construction was meant to be placed.

404 Not Found

The house ID or room connection point given was not found.

Changes from 1.2 to 2.0

In 1.2 adding a room required only an index.

In 2.0 we added the

query: "houses"
form; in 1.2 (and prior) the client had a hard-coded list of available houses and rooms for each.

Changes from 1.1 to 1.2

In 1.1, houses could have only one room

File

Defined in file src/infinity/legacy-commands.lisp.